<?php
/**
 * class LRmodel
 *  модель 
 */
class LRmodel extends Model{

    
    public function __construct() {
        parent::__construct();
    }
        /**
     * Получает объект юзера по логину
     * @param type $user_login
     * @return boolean 
     */
    public function getUserDataByEmail($user_email){
        $query = mysql_query("SELECT *, IF(DATE_ADD(last_activity, INTERVAL 10 MINUTE)>NOW(), 1, 0) as is_online FROM users WHERE user_email='" . mysql_real_escape_string($user_email) . "'");
        $data = mysql_fetch_assoc($query);
        if(!empty($data)) 
            return $data;
        else
            return FALSE;
    }
    /**
     * Получает объект юзера по логину
     * @param type $user_login
     * @return boolean 
     */
    public function getUserDataByLogin($user_login){
        $query = mysql_query("SELECT * FROM users WHERE user_login='" . mysql_real_escape_string($user_login) . "' LIMIT 1");
        $data = mysql_fetch_assoc($query);
        if(!empty($data)) 
            return $data;
        else
            return FALSE;
    }
    
    
    public function getExtendedUserDataById($user_id) {
        $query = mysql_query("SELECT * FROM users as t1 
                              WHERE user_id=" . $user_id . "");
        $data = mysql_fetch_assoc($query); 
        
        if(!empty($data)) 
            return $data;
        else
            return FALSE;
    }
    /**
     * Получает объект юзера по id
     * @param type $user_id
     * @return boolean 
     */
    public function getUserDataById($user_id) {
        $query = mysql_query("SELECT *, IF(DATE_ADD(last_activity, INTERVAL 10 MINUTE)>NOW(), 1, 0) as is_online FROM users WHERE user_id = " . $user_id . "");
        $data = mysql_fetch_assoc($query);

        if(!empty($data)) 
            return $data;
        else
            return FALSE;
    }
    public function updateUserStatus($id){
        return mysql_query("UPDATE users SET last_activity=NOW() WHERE user_id = ".$id);
    }
    
    /**
     * проверяет есть ли юзер с заданным id в базе
     * @param type $user_id
     * @return boolean 
     */
    public function hasUserInBaseByEmail($email) {
         $query = mysql_query("SELECT COUNT(*) FROM users WHERE user_email='" . $email . "'");
            if (mysql_result($query, 0) > 0)    
                    return TRUE; 
                    else  
                    return FALSE;
    }
    /**
     * проверяет есть ли юзер с заданным id в базе
     * @param type $user_id
     * @return boolean 
     */
    public function hasUserInBaseByNickname($nickname) {
         $query = mysql_query("SELECT COUNT(*) FROM users WHERE user_nickname='" . $nickname . "'");
            if (mysql_result($query, 0) > 0)    
                    return TRUE; 
                    else  
                    return FALSE;
    }
    /**
     * проверяет есть ли юзер с заданным id в базе
     * @param type $user_id
     * @return boolean 
     */
    public function hasUserInBaseById($user_id) {
         $query = mysql_query("SELECT COUNT(user_id) FROM users WHERE user_id='" . intval($user_id) . "'");
            if (mysql_result($query, 0) > 0)    
                    return TRUE; 
                    else  
                    return FALSE;
    }

    /**
     * проверяет есть ли такой юзер по его логину
     * @param type $user_login
     * @return boolean 
     */
    public function hasUserInBase($user_login) {
         $query = mysql_query("SELECT COUNT(user_id) FROM users WHERE user_login='" . mysql_real_escape_string($user_login) . "'");
            if (mysql_result($query, 0) > 0)    
                    return TRUE; 
                    else  
                    return FALSE;
    }
    /**
     * добавляет юзера в бд
     * @param type $login
     * @param type $password
     * @return type 
     */
    public function addUser($email, $nickname, $password) {
        mysql_query("INSERT INTO users SET user_email='" . $email . "', user_nickname='" . $nickname . "', user_password='" . $password . "', registration_date = NOW()");
        return mysql_insert_id();
    }

    /**
     * Обновление профайла по id 
     * @param type $data
     * @param type $user_id
     * @return type 
     */
    public function updateProfile($data, $user_id) {
        $temp = array();
        foreach ($data as $key=>$value) {
            $temp[]=$key.'='.(!is_numeric($value)?'"'.$value.'"':$value);
        }
        echo "UPDATE users SET ".  implode(', ', $temp). " WHERE user_id=".$user_id;
        return mysql_query("UPDATE users SET ".  implode(', ', $temp). " WHERE user_id=".$user_id);
    }  
    /**
     * обновление хэша и ip юзера, использвется успешном логине
     * @param type $hash
     * @param type $ip
     * @param type $user_id 
     */
    public function updateUserHashAndIP($hash, $ip, $user_id) {
         mysql_query("UPDATE users SET user_hash='" . $hash . "'" . $ip . " WHERE user_id='" . intval($user_id) . "'");
    }
    /**
     * обновляет компанию которой владее юзер с заданным id
     * @param type $company
     * @param type $user_id
     * @return type 
     */
    public function updateUserOwnerof($company, $user_id) {
         return mysql_query("UPDATE users SET ownerof='" . intval($company) . "' WHERE user_id='" . intval($user_id) . "'");
    } 
    /**
     * Проверяет есть ли компания я уюзера с заданным id
     * @param type $user_id
     * @return type 
     */
    public function hasCompany($user_id) {
        $result = $this->db->query("SELECT ownerof FROM users WHERE user_id='" . intval($user_id) . "'");
        
        return $result->row['ownerof'];
    } 
}

?>
